#ifndef SPLINEINTERPOLATOR_H
#define SPLINEINTERPOLATOR_H

#include <vector>

class SplineInterpolator
{
public:
    SplineInterpolator();

    // 样条插值函数
    std::vector<double> interpolate(const std::vector<double>& t, const std::vector<double>& y, const std::vector<double>& t2);

private:
    // 计算三次样条插值的系数
    void calculateCoefficients(const std::vector<double>& t, const std::vector<double>& y);

    // 在插值点 t2 上计算插值结果
    double evaluateSpline(double t2) const;

    // 三次样条插值的系数
    std::vector<double> a, b, c, d;

    // 时间点数据
    std::vector<double> t;
};

#endif // SPLINEINTERPOLATOR_H
